package com.prd.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Objects;

/**
 * <p>
 * 客户-客户关系人
 * </p>
 *
 * @author o1
 * @since 2023-11-25
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("客户关系人CustomerContactDTO")
public class CustomerContactDTO implements Serializable {

    /**
     * id
     */
    @ApiModelProperty("id")
    private Long id;

    /**
     * 编号
     */
    @ApiModelProperty("编号")
    private String no;

    /**
     * 项目id
     */
    @ApiModelProperty("项目id")
    private int projectId;

    /**
     * 公司名称
     */
    @ApiModelProperty("公司名称")
    private String companyName;

    /**
     * 主营类别
     */
    @ApiModelProperty("主营类别")
    private String companyCategories;

    /**
     * 主营类别id
     */
    @ApiModelProperty("主营类别id")
    private int companyCategoriesId;

    /**
     * 主营业务
     */
    @ApiModelProperty("主营业务")
    private String companyBusiness;

    /**
     * 联系人/客人id
     */
    @ApiModelProperty("联系人/客人id")
    private String guestNo;

    /**
     * 联系人/客人名称
     */
    @ApiModelProperty("联系人/客人名称")
    private String guestName;

    /**
     * 电话
     */
    @ApiModelProperty("电话")
    private String guestPhone;

    /**
     * 邮箱
     */
    @ApiModelProperty("邮箱")
    private String guestEmail;

    /**
     * 部门
     */
    @ApiModelProperty("部门")
    private String guestDepartment;

    /**
     * 职务
     */
    @ApiModelProperty("职务")
    private String guestJob;

    /**
     * 关系描述
     */
    @ApiModelProperty("关系描述")
    private String guestDesc;

    /**
     * 信息来源
     */
    @ApiModelProperty("信息来源")
    private String customerSource;

    /**
     * 合伙人码
     */
    @ApiModelProperty("合伙人码")
    private String customerPartnerCode;

    /**
     * 合伙人累计业绩
     */
    @ApiModelProperty("合伙人累计业绩")
    private String customerPartnerPer;

    /**
     * 合伙人累计分佣
     */
    @ApiModelProperty("合伙人累计分佣")
    private String customerPartnerBrokerage;

    /**
     * 决策层级: 主决策人1，副决策人2，影响人3，其他4，不定义5
     */
    @ApiModelProperty("决策层级: 主决策人1，副决策人2，影响人3，其他4，不定义5")
    private int guestJobLevelId;

    /**
     * 类型：客户关系人1 客户来源2，合伙人4
     */
    @ApiModelProperty("类型：客户关系人1 客户来源2，合伙人4 ")
    private int type;


    @Override
    public int hashCode(){
        return
                Objects.hashCode(guestName + guestPhone) & Integer.MAX_VALUE;
    }
}
